home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.19950726-19950929 / 000000_news@columbia.edu_Wed Jul 26 00:07:26 1995.msg next >
Internet Message Format  |  2020-01-01  |  6KB

  1. Received: from apakabar.cc.columbia.edu by watsun.cc.columbia.edu with SMTP id AA06562
  2.   (5.65c+CU/IDA-1.4.4/HLK for <kermit.misc@watsun.cc.columbia.edu>); Tue, 25 Jul 1995 20:07:32 -0400
  3. Received: by apakabar.cc.columbia.edu id AA22300
  4.   (5.65c+CU/IDA-1.4.4/HLK for kermit.misc@watsun); Tue, 25 Jul 1995 20:07:31 -0400
  5. Path: news.columbia.edu!watsun.cc.columbia.edu!fdc
  6. From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
  7. Newsgroups: comp.protocols.kermit.misc
  8. Subject: Re: Kermit download from CompuServe.. best setup??
  9. Date: 26 Jul 1995 00:07:26 GMT
  10. Organization: Columbia University
  11. Lines: 88
  12. Message-Id: <3v40vu$loq@apakabar.cc.columbia.edu>
  13. References: <3uidtu$r5c@hpber004.swiss.hp.com> <MpREww8Z7mxH084yn@netcom.com> <DC7oIH.6IA@omen.com> <kwOFww8Z7GDV084yn@netcom.com>
  14. Nntp-Posting-Host: watsun.cc.columbia.edu
  15. Apparently-To: kermit.misc@watsun.cc.columbia.edu
  16.  
  17. In article <kwOFww8Z7GDV084yn@netcom.com>,
  18. Jeffrey Hurwit <jhurwit@netcom.com> wrote:
  19. >In article <DC7oIH.6IA@omen.com>, caf@omen.com (Chuck Forsberg WA7KGX) wrote:
  20. >>The complexity of the Kermit protocol with its window management and
  21. >>other features exacts a penalty in CPU resources.  
  22. >    To be perfectly honest, I'm not familiar with zmodem.  However,
  23. >    there was quite a bit of discussion in one of our ISP-local news
  24. >    groups about disconnects at 10 minutes during transfers using sz. 
  25. >    It was reasoned that 10 minutes indicated the idle daemon kicking
  26. >    in and logging out sessions, and the solution was found to be to
  27. >    use an sz option to enable windows.  Why does sz offer this
  28. >    feature, if it's known to be detrimental in some way?
  29. >
  30. Different philosophies regarding windowing and, for that matter, basic
  31. tuning defaults.  Sometimes you need windows (small "w" :-).  In the case
  32. you cite, it's because you need *some* reverse-channel activity to tickle
  33. your idle daemon.
  34.  
  35. I think everybody understands by now, and Chuck will agree it is a fair
  36. statement, that ZMODEM is tuned, by default, for maximum speed, whereas
  37. C-Kermit is tuned, by default, for safety (robustness).  Kermit, however,
  38. does not totally give up its robustness features when you tune it for
  39. speed, so it is not exactly accurate to say (not that anyone has, but I
  40. know you're all thinking it :-) that Kermit, thus tuned, is the same
  41. ZMODEM, any more than it is to say that ZMODEM, forced to use a window
  42. size and escape all control characters, is the same as Kermit.
  43.  
  44. One of the big differences is in the windowing strategy.  ZMODEM's is
  45. "go-back-to-n", Kermit's is "selective repeat".  Go-back-to-n means, "if
  46. there is an error, go back to the spot where the error was detected and
  47. start over again from there".  Selective repeat means, "if there is an
  48. error, retransmit only the piece that had the error".
  49.  
  50. Go-back-to-n is more efficient as long as there are no errors, because, as
  51. Chuck implies, there is less bookkeeping involved.  However, go-back-to-n
  52. is less efficient if it must recover from errors, especially when there is
  53. a long round-trip delay, because a lot more stuff is already in the pipe
  54. by the time the error is detected, and all of it must be sent again.
  55.  
  56. However, both protocols work.  I would say it is simply a matter of
  57. preference on the part of a well-informed user.  Do you care more about
  58. getting the best speed on good connections, or getting good speed on ALL
  59. connections?  (This is not to say that ZMODEM is necessarily faster than
  60. Kermit on good connections, but I think it can be demonstrated that
  61. ZMODEM's speed goes down much faster as the connection deteriorates than
  62. Kermit's does, and moreso if the connection has long round-trip delays.)
  63.  
  64. >>time kermit -s b17mh.gif
  65. >    tells Kermit to do newline and charset translations, which might
  66. >    account for some CPU power.  At the least, you'd have a corrupted
  67. >    gif file on the other end.
  68. >
  69. Actually, I think Chuck is pretty competent Kermit user :-)  I'm sure he
  70. has binary mode and the various other performance options set in his
  71. initialization file.
  72.  
  73. If you look at the elapsed times, they are not that different; I would
  74. classify them as neglible and not worth quibbling over.  Kermit's CPU
  75. times are indeed higher, but who knows what Chuck's init file is doing.
  76. Maybe it's calculating Pi to a million digits (you can do that with
  77. Kermit's command language :-)  (JUST KIDDING!)
  78.  
  79. Chuck has made the point that Kermit has all this startup overhead that
  80. Professional-YAM(tm) doesn't have.  What can I say, he's right.  It's
  81. setting up dialing and services directories, defining all kinds of
  82. macros, and so on.  These are convenience features that a lot of people
  83. need and depend on.  It's nice to have them there.  The "power user",
  84. of course, can bypass all that and go for the speed.
  85.  
  86. Even then, I don't doubt that Chuck's code eats less CPU, even after we
  87. enter packet mode.  That's because it doesn't do as much.  Even when
  88. Kermit is not translating character sets, prefixing control characters,
  89. handling 8-bit characters on 7-bit links via single or locking shifts,
  90. etc, it still has to make those tests, and it still manages its window.
  91.  
  92. Yes, I could put in some time on micro-optimizing the code to avoid these
  93. tests (generally at the penalty of increased code size), but the only case
  94. I heard of where the CPU utilization posed a problem was on a 10+-year-old
  95. MicroVAX that had a single-character-interrupt serial port and a very
  96. small memory, and in that case optimizing Kermit's "inner loop" would not
  97. have helped a bit.
  98.  
  99. Anyway, if we were all so concerned about conserving scarce CPU cycles, we
  100. would not all be rushing install the latest graphical operating system on
  101. our PCs :-)   Hmmm... wait, now I think I'm beginning to see Chuck's subtle
  102. point...
  103.  
  104. - Frank